<?php

/**
 * Représente un template
 *
 * @package cass
 * @author Mickaël CASTANHEIRO <mickael.castanheiro@gmail.com>
 * @version 1.0
 */

namespace cass;

class Template extends Element {

    protected $fileName;
    protected $vars;

    /**
     * Constructeur de l'Action
     */
    public function __construct() {
        $this->vars = array();
    }

    /**
     * Modifie le path du template en fonction d'un nom simple
     * @param <type> $_name
     */
    public function setName($_name) {
        $this->fileName = __PATH__ . Data::directories('templates') . $_name . Data::extensions('templates');
    }

    /**
     * Récupère le contenu d'un template
     */
    public function getRender() {
        // Variables
        // -- de l'Uri
        $__uri = FrontController::getInstance()->getUri();
        // -- de session
        $__session = Session::getInstance();

        foreach ($this->getVars() AS $kkey => $vvalue) {
            ${$kkey} = $vvalue;
        }

        ob_start();
        require $this->fileName;
        $contents = ob_get_contents();
        ob_end_clean();

        return $contents;
    }

    /**
     * Affiche le contenu du template
     */
    public function render($_handler=null) {
        ob_start($_handler);
        echo $this->getRender();
        ob_end_flush();
    }

}